Skip to content

feat(arbitrum): add Arbitrum Sepolia as a destination chain#283

Closed
Huygon764 wants to merge 4 commits into
mainfrom
feat/arbitrum-support
Closed

feat(arbitrum): add Arbitrum Sepolia as a destination chain#283
Huygon764 wants to merge 4 commits into
mainfrom
feat/arbitrum-support

Conversation

@Huygon764

Copy link
Copy Markdown
Contributor

Summary

  • Add Arbitrum Sepolia (421614) as a third destination chain alongside Horizen and Base. Testnet only.

What users can do

  • Pick Arbitrum Sepolia in the network chooser when creating an account — account auto-deploys, no setup needed
  • Deposit / withdraw ETH and USDC into the multisig
  • Propose / approve / execute single transfers and batch transfers, same flow as the other chains
  • Network shows up in the sidebar with its own accounts list

Known limitations

  • Add / remove signer is currently broken on Arbitrum (use Horizen or Base if you need to change the signer set) — root cause documented in packages/stylus/NOTES.md
  • ZK aggregation on Arbitrum testnet can take up to ~6 hours before execute() is possible (Horizen is ~2 mins) — pick Horizen for fast end-to-end demos
  • MetaMask Blockaid may block plain ETH transfers into the account proxy; workaround documented in docs/arbitrum-stylus.md

Docs

  • New page: docs/arbitrum-stylus.md — user-facing guide with flows, caveats, and on-chain addresses

Test plan

  • Create account on Arbitrum Sepolia
  • Execute single transfer
  • Execute batch transfer

Huygon764 and others added 4 commits May 25, 2026 14:09
* docs: add llms.txt intro page for AI agents (#256)

Add a GitBook-friendly page introducing PolyPay's llms.txt support so
non-technical readers can discover the feature and link AI agents to
the live playbook.

- New page docs/llms-txt-for-agents.md covering what llms.txt is, the
  live endpoint, the five integration flows it documents, two ways to
  wire an agent up, and compatibility notes.
- Add the page to docs/SUMMARY.md between x402 and Architecture.
- Fix stale api.polypay.xyz references in docs/x402-deposits.md to the
  real api.polypay.pro host.

* feat(x402): add Coinbase CDP bazaar deposit route for agentic.market listing (#260)

Adds a second x402 deposit endpoint /x402/bazaar/deposit/:multisig that
routes through Coinbase CDP facilitator instead of PayAI, so the resource
gets indexed in CDP discovery and surfaces on agentic.market.

The default /x402/deposit/:multisig path keeps using PayAI (better rate
limits, simpler auth) — no UI change. CDP path activates implicitly when
CDP_API_KEY_ID is set; otherwise it returns a clear config error.

CDP requires Ed25519 JWT signed per-request (2-min TTL), so the service
now lazy-imports @coinbase/x402 createAuthHeader to produce the
Authorization header. Payment requirements for the CDP path also embed a
declareDiscoveryExtension-shaped extensions.bazaar block (strict JSON
Schema), without which CDP would settle but not index.

Includes scripts/bazaar-bootstrap.ts to produce the first real settlement
that triggers CDP indexing — bootstrap must run against a deployed
backend (the resource URL ends up in the catalog).

Refs #259

---------

Co-authored-by: BoHsuu <115441679+Huygon764@users.noreply.github.com>
…ring

Add a Rust/WASM (Arbitrum Stylus) port of MetaMultiSigWallet and wire
Arbitrum Sepolia (421614) through shared, frontend and backend. The
contract is deployed and validated on-chain (Poseidon parity proven vs
the deployed PoseidonT3 library).

Per-account auto-deploy from the relayer is still open: the full contract
is ~29KB compressed, over the 24KB EVM limit, so cargo-stylus fragments
it and the single-bytecode StylusDeployer path can't be used. Options to
resume (proxy factory / CLI shell-out / manual) are documented in
packages/stylus/NOTES.md.
Wire Arbitrum Sepolia (421614) as a third destination chain alongside
Horizen and Base. Testnet only — zkVerify has no Arbitrum One verifier yet.

- Per-account multisig wallets via EIP-1167 proxy + shared Stylus impl,
  created on-chain by MetaMultiSigWalletStylusFactory.
- Stylus impl adds init() for the proxy pattern, plus an internal
  self-call dispatcher to work around the Stylus delegatecall + CALL
  msg.sender issue (see packages/stylus/NOTES.md).
- Custom 52-byte proxy variant of EIP-1167 that accepts plain ETH
  transfers (empty-calldata STOP) so cargo-stylus's fragmented loader
  doesn't revert deposits.
- Backend relayer routes Stylus-chain deploys through the factory;
  zkVerify aggregation domain 4 wired for chain 421614.
- Frontend network picker + sidebar surface Arbitrum Sepolia on testnet.
- Shared config carries impl/factory addresses + Circle USDC for 421614.
- Fix prisma findUnique by address_chainId in add/remove signer handlers
  (existing bug surfaced by the new chain).
- New docs/arbitrum-stylus.md user guide covering flows, limitations
  (add/remove signer broken, 6h aggregation cadence, MetaMask Blockaid
  warning) and on-chain addresses.
@Huygon764

Copy link
Copy Markdown
Contributor Author

Duplicate of #282 — closing.

@Huygon764 Huygon764 closed this Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants